package main

import (
	"fmt"
	"net"
)

func ProcessConn(conn net.Conn) {
	defer conn.Close()
	// 循环读取网络连接中的数据
	for {
		// 创建字节数组，存储从网络连接中读取的数据
		buf := make([]byte, 1024)
		// 从网络连接将数据读取到buf中
		_, err := conn.Read(buf)
		if err != nil {
			fmt.Println(currentTime(), "服务端读取失败：", err.Error())
			// conn.Close()
			return
		}
		// 以字符串形式打印读取到数据
		fmt.Println(currentTime(), " 从客户端读取到的数据：", string(buf))
	}
}

func main13() {
	// 监听本机8888端口
	l, err := net.Listen("tcp", ":8888")
	if err != nil {
		fmt.Println("TCP监听错误：", err.Error())
	}

	// 循环接收客户端连接请求
	for {
		// 获得网络连接对象
		conn, err := l.Accept()
		if err != nil {
			fmt.Println("建立连接失败：", err.Error())
			return
		}

		// 创建子协程，并在其中处理网络连接
		go ProcessConn(conn)
	}
}
